package org.zhengquan.dao;

import org.apache.ibatis.annotations.Param;
import org.zhengquan.pojo.SysAcl;
import org.zhengquan.vo.PageQuery;

import java.util.List;

public interface SysAclMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysAcl record);

    int insertSelective(SysAcl record);

    SysAcl selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysAcl record);

    int updateByPrimaryKey(SysAcl record);

    /**
     * 根据权限模块id查询权限模块下权限点的数量
     *
     * @param aclModuleId
     * @return
     */
    int countByAclModuleId(@Param("aclModuleId") Integer aclModuleId);

    /**
     * 根据权限模块id查询权限模块下的权限点列表
     *
     * @param aclModuleId
     * @param pageQuery
     * @return
     */
    List<SysAcl> selectPageByAclModuleId(@Param("aclModuleId") Integer aclModuleId, @Param("pageQuery") PageQuery pageQuery);

    /**
     * 根据名称和模块id判断权限点是否存在
     *
     * @param aclModuleId
     * @param aclId
     * @param aclName
     * @return
     */
    int countByNameAndAclModuleId(@Param("aclModuleId") Integer aclModuleId, @Param("aclId") Integer aclId, @Param("aclName") String aclName);

    /**
     * 获取所有的权限点
     *
     * @return
     */
    List<SysAcl> selectAllAcl();

    /**
     * 根据权限点id查询权限点
     *
     * @param aclIdList
     * @return
     */
    List<SysAcl> selectByIdList(@Param("aclIdList") List<Integer> aclIdList);

    /**
     * 根据url查询权限点
     *
     * @param url
     * @return
     */
    List<SysAcl> selectByUrl(@Param("url") String url);
}